Transcript

Depois de executar parte de um programa, o diagrama de ambiente associado é:

Note que há quatro variáveis no quadro global: n, A, B e a.

O código para A.foo (com a linha rosa) é:

def foo(self):
        return n + self.n

O código para B.__init__ (com a linha verde) é:

def __init__(self, bar):
        self.n = bar

O código para B.foo (com a linha laranja) é:

def foo(x):
        return x.n + A.n + a.n + B.n + b.n + n

Quais valores são impressos se o código abaixo é executado, começando do estado representado pelo diagrama de ambiente acima?

print(a.foo())  # instrução print 1
b = B(4)
print(b.foo())  # instrução print 2
a.n = 6
print([b.foo(), a.foo()])  # instrução print 3

Qual o valor impresso pela instrução print 1?


Qual o valor impresso pela instrução print 2?


Qual o valor impresso pela instrução print 3?